﻿Imports System.Text.RegularExpressions

Public Class frmUser
    ' Dim SoLoaiUser As Integer = 2
    Public loai As Integer = 0
    Private Sub TrangChủToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrangChủToolStripMenuItem.Click
        Me.Close()
    End Sub

    Private Sub frmUser_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        dgvUser.DataSource = ThanhVienBUS.GetAllThanhVienBUS()
        ankhachhang()
    End Sub



    Private Sub btnThem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThem.Click


        Dim match As String = "\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"

        Dim reg As Regex = New Regex(match)
        Dim t As Long = 0
     

        Dim tv As ThanhVienDTO = New ThanhVienDTO
        Dim kh As KhachHangDTO = New KhachHangDTO
        Try


            If txtUserName.Text = "" Or txtPass.Text = "" Or cbLoai.SelectedIndex = -1 Then
                MessageBox.Show("Username , pass còn trống hoặc bạn chưa chọn loại")
                Return
            Else
                If txtHoTen.Text = "" Or txtSoDienThoai.Text = "" Or txtDChi.Text = "" Or (Long.TryParse(txtSoDienThoai.Text, t) = False) Or txtSoDienThoai.TextLength > 11 Or txtSoDienThoai.TextLength < 7 Or ((reg.IsMatch(txtEmail.Text) = False) And txtEmail.Text <> "") Then
                    MessageBox.Show("Họ tên, số điện thoại, Địa chỉ còn trống, số điện thoại bạn nhập sai , hoặc địa chỉ email bị sai")
                    Return
                Else
                    tv.UserName = txtUserName.Text
                    tv.Pass = txtPass.Text
                    tv.Loai = cbLoai.SelectedIndex + 1

                    kh.HoTen = txtHoTen.Text
                    kh.SoDienThoai = txtSoDienThoai.Text
                    kh.DiaChi = txtDChi.Text
                    kh.Email = txtEmail.Text
                    kh.Username = tv.UserName
                End If

            End If
            ThanhVienBUS.InsertThanhVienBUS(tv)
            dgvUser.DataSource = ThanhVienBUS.GetAllThanhVienBUS()

            KhachHangBUS.InsertKhachHangBUS(kh)
            dgvDanhSachKhachHang.DataSource = KhachHangBUS.GetAllKhachHangBUS()

        Catch ex As Exception
            MessageBox.Show("UserName đã tồn tại")
        End Try

    End Sub

    Private Sub btnXoa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnXoa.Click
        Try
            If (dgvUser.SelectedRows.Count > 0) Then

                For i As Integer = 0 To (dgvUser.SelectedRows.Count - 1)
                    Dim matv As String = dgvUser.SelectedRows(i).Cells(0).Value.ToString()
                    KhachHangBUS.DeleteKhachHangBUS(matv)
                    ThanhVienBUS.DeleteThanhVienBUS(matv)


                Next
                dgvUser.DataSource = ThanhVienBUS.GetAllThanhVienBUS()
                dgvDanhSachKhachHang.DataSource = KhachHangBUS.GetAllKhachHangBUS()
            End If
        Catch ex As Exception
            MessageBox.Show("Thành viên đang được tham chiếu tới, để xóa bạn phải xóa tham chiếu tới")
        End Try

    End Sub

    Private Sub btnSua_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSua.Click
        Dim tv As ThanhVienDTO = New ThanhVienDTO
        tv.UserName = txtUserName.Text
        If (tv.UserName <> dgvUser.SelectedRows(0).Cells(0).Value.ToString()) Then
            MessageBox.Show("UserName bạn sửa sẽ không được cập nhật, vì nó đã được thay đổi")
            Return
        End If
        tv.Pass = txtPass.Text
        Try
            If ((dgvUser.SelectedRows(0).Cells(2).Value.ToString() = "1" And cbLoai.SelectedIndex <> 0) Or (dgvUser.SelectedRows(0).Cells(2).Value.ToString() <> "1" And cbLoai.SelectedIndex = 0)) Then
                MessageBox.Show("Không được phép cập nhật khách hàng lên loại cao hơn, bạn vui lòng thêm mới")
                Return
            End If
            tv.Loai = cbLoai.SelectedIndex + 1
            ThanhVienBUS.UpdateThanhVienBUS(tv)
            dgvUser.DataSource = ThanhVienBUS.GetAllThanhVienBUS()
        Catch ex As Exception
            MessageBox.Show("Sửa có lỗi, bạn vui lòng coi lại kết nối")
        End Try
    End Sub
    Private Sub dgvUser_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dgvUser.SelectionChanged
        If (dgvUser.SelectedRows.Count > 0 And dgvUser.SelectedRows.Count < 2) Then

            txtUserName.Text = dgvUser.SelectedRows(0).Cells(0).Value.ToString()
            txtPass.Text = dgvUser.SelectedRows(0).Cells(1).Value.ToString()
            cbLoai.SelectedIndex = Integer.Parse(dgvUser.SelectedRows(0).Cells(2).Value.ToString()) - 1
        End If
    End Sub

    Public Sub loadkhachhang()
        pnKhachHang.Enabled = True
        dgvDanhSachKhachHang.DataSource = KhachHangBUS.GetAllKhachHangBUS()
        
    End Sub
    Public Sub ankhachhang()
        pnKhachHang.Enabled = False
    End Sub
    Private Sub cbLoai_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbLoai.SelectedIndexChanged
        If (cbLoai.SelectedIndex > -1) Then
            loai = cbLoai.SelectedIndex + 1
            If (loai = 1) Then
                loadkhachhang()
            Else
                ankhachhang()
            End If
        End If
    End Sub

    Private Sub ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem1.Click
        loadkhachhang()
      
        pnUser.Enabled = False

    End Sub

    
    
    Private Sub btnSuaKh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        Dim match As String = "\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"

        Dim reg As Regex = New Regex(match)
        Dim t As Integer = 0



        Dim kh As KhachHangDTO = New KhachHangDTO
        Try



            If txtHoTen.Text = "" Or txtSoDienThoai.Text = "" Or txtDChi.Text = "" Or (Integer.TryParse(txtSoDienThoai.Text, t) = False) Or ((reg.IsMatch(txtEmail.Text) = False) And txtEmail.Text <> "") Then
                MessageBox.Show("Họ tên, số điện thoại, Địa chỉ còn trống, số điện thoại bạn nhập không phải số , hoặc địa chỉ email bị sai")
                Return
            Else

                kh.HoTen = txtHoTen.Text
                kh.SoDienThoai = txtSoDienThoai.Text
                kh.DiaChi = txtDChi.Text
                kh.Email = txtEmail.Text
            End If

            KhachHangBUS.UpdateKhachHangBUS(kh)
            dgvDanhSachKhachHang.DataSource = KhachHangBUS.GetAllKhachHangBUS()

        Catch ex As Exception
            MessageBox.Show("xảy ra lỗi ", ex.Message)
        End Try

    End Sub

  

    'them tai khoan 
    Private Sub ToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem2.Click
        pnUser.Enabled = True
        pnKhachHang.Enabled = False
        cbLoai.SelectedIndex = 0
    End Sub
End Class